<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><style><!--/*paged media */ div.header {display: none }div.footer {display: none } /*@media print { */@page { size: A4; margin: 10%; @top-center {content: element(header) } @bottom-center {content: element(footer) } }/*element styles*/ .del  {text-decoration:line-through;color:red;} .ins {text-decoration:none;background:#c0ffc0;padding:1px;}
 /* TABLE STYLES */ 

 /* PARAGRAPH STYLES */ 
.DocDefaults {display:block;margin-top: 0in;margin-bottom: 0in;line-height: 100%;font-size: 10.0pt;}
.Standard {display:block;font-size: 12.0pt;}

 /* CHARACTER STYLES */ span.Absatz-Standardschriftart {display:inline;}
--></style><script type="text/javascript"><!--function toggleDiv(divid){if(document.getElementById(divid).style.display == 'none'){document.getElementById(divid).style.display = 'block';}else{document.getElementById(divid).style.display = 'none';}}
--></script></head><body>
  
  <!-- userBodyTop goes here -->
  
  
  
  <div class="document">
  
  <p class="Standard DocDefaults "><span class="" style="">Aufgabe 1:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">Schreiben Sie eine EBNF-Grammatik, die einen Text aus beliebig vielen Wörtern generiert, wobei ein Wort</span><span class="" style="white-space:pre-wrap;"> (als ganzes) entweder mit </span><span class="" style="">normalen Buchstaben</span><span class="" style="white-space:pre-wrap;"> oder in Fe</span><span class="" style="">ttdruck geschrieben sein kann und zwischen 2 Wörtern jeweils ein Leerzeichen stehen muss (aber keine Leerzeichen nach dem letzten Wort). Schreiben Sie Terminalsymbole in Hochkommata (es reicht jeweils die Angabe von 2 Terminalsymbolen und „…“).</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">Lösung Aufgabe 1:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">S = (W Leerzeichen)* W </span></p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">W = Wort | </span><span class="" style="">Fettwort</span><span class="" style="white-space:pre-wrap;"> </span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Wort = Zeichen+</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Fettwort</span><span class="" style="white-space:pre-wrap;"> = Fettzeichen+</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Zeichen = „A“ | „B“ | …</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Fettzeichen = „</span><span class="Absatz-Standardschriftart " style="font-weight: bold;">A</span><span class="" style="">“ | „</span><span class="Absatz-Standardschriftart " style="font-weight: bold;">B</span><span class="" style="">“ | …</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Leerzeichen = „ „</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Aufgabe </span><span class="" style="">2:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">Schreiben Sie eine</span><span class="" style="white-space:pre-wrap;"> EBNF-Grammatik, die ein Geburtsdatum in folgender Schreibweise erzeugt: </span><span class="" style="">tt.mm.jjjj</span><span class="" style="white-space:pre-wrap;"> (z.B. 29.10.2011). Dabei sollen nur Geburtsdaten zwischen dem 01.01.1900 und dem 31.12. 2099 erzeugt werden können (wobei Fehler wie der 31.02.2011 , die durch falsch Kombination von Tag und Monat entstehen, </span><span class="" style="">nicht abgefangen werden brauchen, d.h. erlaubt sind). Schreiben Sie Terminalsymbole in Hochkommata.</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Lösung Aufgabe </span><span class="" style="">2:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">S = Tag „.“ Monat „.“ Jahr</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Tag = „1“|“2“| … |“31“</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Monat = „1“|“2“| … |“12“</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Jahr = Jahrhundert Ziffer </span><span class="" style="">Ziffer</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Jahrhundert = „19“ | „20“</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Ziffer = „0“|“1“| … |“9“</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Aufgabe </span><span class="" style="">3:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">Schreiben Sie eine EBNF-Grammatik, die beliebig geschachtelte Formeln</span><span class="" style="white-space:pre-wrap;"> (ohne Klammern) mit den beiden Operatoren </span><span class="" style="">„</span><span class="" style="white-space:pre-wrap;">+</span><span class="" style="">“ </span><span class="" style="white-space:pre-wrap;">und </span><span class="" style="">„</span><span class="" style="white-space:pre-wrap;">-</span><span class="" style="">„ </span><span class="" style="white-space:pre-wrap;">sowie </span><span class="" style="">positve</span><span class="" style="white-space:pre-wrap;"> natürliche Zahlen (d.h. keine </span><span class="" style="">negavtiven</span><span class="" style="white-space:pre-wrap;"> Zahlen und keine Dezimalzahlen) </span><span class="" style="">erzeugt, z.B. 3+5-6-100+350. Schreiben Sie Terminalsymbole in Hochkommata.</span><span class="" style="white-space:pre-wrap;"> Achten Sie darauf, dass Sie keine Zahlen mit führenden Nullen erzeugen, z.B. nicht </span><span class="" style="">„</span><span class="" style="white-space:pre-wrap;">035</span><span class="" style="">“</span><span class="" style="white-space:pre-wrap;">.</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Lösung Aufgabe </span><span class="" style="">3:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">S = Operand Operator Operand</span></p>
  
  <p class="Standard DocDefaults "><span class="Absatz-Standardschriftart " style="white-space:pre-wrap;">Operand = </span><span class="Absatz-Standardschriftart " style="">Zahl<span class="" style="white-space:pre-wrap;"> | S</span></span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Operator = “+” | “-“</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Zahl = Ziffer1 Ziffer2*</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Ziffer1 = </span><span class="" style="">„1“|“2“| … |“9“</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Ziffer2</span><span class="" style="white-space:pre-wrap;"> = </span><span class="" style="">„0“|“1“| … |“9“</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Aufgabe </span><span class="" style="">4:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">Charakterisieren Sie mit einem Satz, welche Binärzahlen folgende Grammatik erzeugt:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">S = „1“ S „0“ | „10“</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Lösung Aufgabe </span><span class="" style="">4:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">Alle Binärzahlen, die gleichviele 1 und 0 haben, wobei alle 1 am Anfang stehen müssen.</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Bonuspunkte: 2</span><span class="Absatz-Standardschriftart " style="vertical-align: top;font-size: xx-small;">2n</span><span class="" style="white-space:pre-wrap;"> </span><span class="" style="">– </span><span class="" style="white-space:pre-wrap;">2</span><span class="Absatz-Standardschriftart " style="vertical-align: top;font-size: xx-small;">n</span><span class="" style="white-space:pre-wrap;">  </span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Aufgabe </span><span class="" style="">5:</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">S = (10)+</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Lösung Aufgabe </span><span class="" style="">5:</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">Alle Binärzahlen, die gleichviele 1 und 0 haben, wobei immer abwechselnd 1 und 0 vorkommt und die Binärzahl mit 1 beginnt.</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Aufgabe </span><span class="" style="">6:</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">S= (AB)+</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">A=“1“</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">B=“0“</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">AB = BA</span></p>
  
  <p class="Standard DocDefaults "><span class="" style="">BA = AB</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="white-space:pre-wrap;">Lösung Aufgabe </span><span class="" style="">6:</span></p>
  
  <p class="Standard DocDefaults "> </p>
  
  <p class="Standard DocDefaults "><span class="" style="">Alle Binärzahlen, die gleichviele 1 und 0 haben (Reihenfolge von 1 und 0 egal).</span></p></div>
  
  
  
  
  
  
  
  <!-- userBodyTail goes here -->
  
  </body></html>